/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.view;

import java.io.Serializable;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.dsw2.biblioteca.bl.AutorBlLocal;
import mx.its.dsw2.biblioteca.modelo.Autor;

/**
 *
 * @author lesly
 */
@ManagedBean
@SessionScoped
public class AuthorBean {

    //LLAMADAS A LOS EJB
    @EJB
    private AutorBlLocal autorBl;
    //
    private List<Autor> lista;
    private Autor author;
    private String accion;

    /**
     * Creates a new instance of AuthorBean
     */
    public AuthorBean() {
        author = new Autor();
    }
    //METODOS GET Y SET

    public List<Autor> getLista() {
        lista = autorBl.getAll();
        return lista;
    }

    public Autor getAuthor() {
        return author;
    }

    public void setAuthor(Autor author) {
        this.author = author;
    }
    //ACCIONES
//    public String prepararNuevo(){
//        author=new Autor();
//    return "AuthorCreateEdit";
//    }
    public String proceesarAccion(){
    if(accion.equalsIgnoreCase("Nuevo")){
        autorBl.Register(author);
        }else{
            if(accion.equalsIgnoreCase("Editar")){
               autorBl.modify(author);
            }else{
                if(accion.equalsIgnoreCase("Eliminar")){
                    autorBl.delete(author);
                }
            }
        }
        accion=" ";
        return "AuthorList";
    }
    //LISTENERS
    public void prepararNuevo(){
            accion="Nuevo";
    author=new Autor();
    }
    
    //acciones
    
   // public String prepararNuevo(){//hace al ultimo esta accion y carga primero lo del formulario
        //no tienes informacion de la vista
    //    author =new Autor();//para limpiar los campos del formulario
    //    return "AuthorCreateEdit";
    //}
  

    //listeners
    
   
    
    public void prepararEditar(ActionEvent evt){
        accion="Editar";
       /* System.out.println(evt.getComponent().getClientId());
        String array[]=evt.getComponent().getClientId().split(":");
        String id=array[2];
        int index=Integer.parseInt(id);
        **/
        int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        author=lista.get(index);
    }
    
    public void prepararEliminar(ActionEvent evt){
        accion="Eliminar";
        int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        author=lista.get(index);
    }
    
//    public String llamadaPaginas(){
//        String link="";
//            if(accion.equalsIgnoreCase("Editar")||accion.equalsIgnoreCase("Nuevo")){
//               link="AuthorCreateEdit";
//            }else{
//                if(accion.equalsIgnoreCase("Eliminar")){
//                    link="AuthorList";
//                }
//        }
//        return link;
//    }  
    
    public String procesarRegresar(){
        if(accion.equalsIgnoreCase("Nuevo")|| accion.equalsIgnoreCase("Editar")){
            return "AuthorCreateEdit";
        }else{
            return "AuthorList";
        }
    }
}
